home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1993 / MacHack 1993.toast / MacHack™ 1987-1992 / MacHack™ '90 / Other Stuff / Demos ƒ / Demo AppMaker / Demo AppMaker™ / Demo AppMaker™.rsrc / TmPT_105_ModalDialog < prev    next >
Encoding:
Text File  |  1990-03-23  |  1.5 KB  |  78 lines

  1. { %filename% -- Modal dialog }
  2. { Created %date% %time% by AppMaker }
  3.  
  4. Unit %unitname%;
  5. Interface
  6.  
  7. Uses
  8.     ResourceDefs,
  9.     DialogAids;
  10.  
  11. {----------}
  12. Type
  13.     %dlogname%Rec = record
  14.         %for each item gen dialog field%
  15.     end;
  16.  
  17. {----------}
  18. Function Get%dlogname% (var %dlogname%:    %dlogname%Rec): boolean;
  19.  
  20. {----------}
  21. Implementation
  22.  
  23. const
  24.     %for each item gen itemNr%
  25.  
  26. %for each item gen auxiliary%
  27. %if needsFilter%
  28.     {----------}
  29.     Function Filter%dlogname% (whichDialog:    DialogPtr;
  30.                          var event:            EventRecord;
  31.                          var itemHit:        integer): boolean;
  32.     var
  33.         filtered:        boolean;
  34.     Begin
  35.         filtered := false;
  36.         %for each item gen filter%
  37.         if not filtered then begin
  38.             filtered := StandardFilter (whichDialog, event, itemHit);
  39.         end;
  40.         Filter%dlogname% := filtered;
  41.     End; {Filter%dlogname%}
  42.  
  43. %end if%
  44. {----------}
  45. Function Get%dlogname% (var %dlogname%:    %dlogname%Rec): boolean;
  46. var
  47.     result:            boolean;
  48.     theDialog:        DialogPtr;
  49.     done:            boolean;
  50.     itemNr:            integer;
  51. Begin
  52.     InitCursor;
  53.     theDialog := GetNewDialog (%dlogname%ID, nil, pointer (-1));
  54.     SetPort (theDialog);
  55.     with %dlogname% do begin
  56.         %for each item gen set%
  57.         ShowWindow (theDialog);
  58.         OutlineButton (1);
  59.         done := false;
  60.         while not done do begin
  61.             %for each item gen enable%
  62.             %if needsFilter%
  63.                 ModalDialog (@Filter%dlogname%, itemNr);
  64.             %else%
  65.                 ModalDialog (nil, itemNr);
  66.             %end if%
  67.             case itemNr of
  68.                 %for each item gen hit%
  69.             end; {case}
  70.         end; {while}
  71.         %for each item gen finish%
  72.     end; {with}
  73.     DisposDialog (theDialog);
  74.     Get%dlogname% := result;
  75. End; {Get%dlogname%}
  76.  
  77. End. {%unitname%}
  78.